_require local "../../../../basis.smi"
_require local "../../../libs/env/main/SEnv.smi"
_require "../../../libs/toolchain/main/Filename.smi"
_require local "../../../../config/main/SQLConfig.smi"

structure Config =
struct
  exception Load of exn
  exception Config
  exception Parse
  val loadConfig : Filename.filename -> unit

  datatype host_os = Mingw | Cygwin | Unix

  val CC : unit -> string
  val CXX : unit -> string
  val LD : unit -> string
  val AR : unit -> string
  val RANLIB : unit -> string
  val LLC : unit -> string
  val OPT : unit -> string
  val LLVM_AS : unit -> string
  val LLVM_DIS : unit -> string
  val LDFLAGS : unit -> string
  val LIBS : unit -> string
  val DLLEXT : unit -> string
  val LIBEXT : unit -> string
  val ASMEXT : unit -> string
  val OBJEXT : unit -> string
  val A_OUT : unit -> string
  val HOST_OS_TYPE : unit -> host_os
  val CMDLINE_MAXLEN : unit -> int option
  val PIC_DEFAULT : unit -> bool
  val RUNLOOP_DLDFLAGS : unit -> string
  val EXTRA_OPTIONS : unit -> string list
end
